#include <my_header.h>

/* Usage:  ./1_ftok*/
int main(int argc, char *argv[]){                                  
    // 1. 生产标识
    key_t keytag = ftok("./1_ftok", 1);
    ERROR_CHECK(keytag, -1, "ftok");
    // 打印获取的标识 唯一标识
    printf("key_t :%d\n", keytag);

    // 2. 创建共享内存(使用**shmget函数**可以根据键来获取一个共享内存段。)
    // shmget(可以为任何值，这里怕被占用(最好这样),字节大小,
    // 掩码权限 | 存在返回标识符 不存在则创建)

    // shmid 共享内存的键值
    int shmid = shmget(keytag, 100, 0600 | IPC_CREAT);
    ERROR_CHECK(shmid, -1, "shmget");
    printf("shmid :%d\n", shmid);
    // IPC_EXCL 没什么用
    return 0;
}

#if 0
key_t ftok(
const char *pathname，// 实际存在且可访问的文件的路径
(文件本身内容并不重要，只是标识作用)
int proj_id // 进一步确保生成的键值的唯一性(也是标识作
用)，1-255(不能是0)
);
//返回值:成功则返回产生键值，失败返回-1
//
//
int shmget(
key_t key，// 共享内存段的键值，用于标识共享内存段
size_t size，// 指定共享内存段的大小(单位:字节)
int shmf1g // 位掩码，用于设置共享内存段的权限和状态
#endif
